Loading in the data
data_all <- read_csv("../../../reports/runtimes_big.csv", col_types = cols(num_students = col_factor(), num_projects = col_factor(), proj_pref_type = col_factor(), mechanism = col_factor()))
data_singleton <- data_all %>% filter(proj_pref_type == "singleton")
data_p1 <- data_all %>% filter(proj_pref_type == "linear_perturbed_1")
data_p4 <- data_all %>% filter(proj_pref_type == "linear_perturbed_4")
data_r <- data_all %>% filter(proj_pref_type == "random")
colors_mechanism = c("#7a5195", "#ffa600")
Some initial playing with scatterplot3d
library(scatterplot3d)
plotit <- function(data) {
#colors <- c("#003f5c", "#58508d", "#bc5090", "#ff6361", "#ffa600")
colors = c("#003f5c" ,"#7a5195" ,"#ef5675" ,"#ffa600")
colors_mechanism = c("#7a5195", "#ffa600")
shapes <- c(15, 16, 17, 18)
scatterplot3d(
x = data$num_projects,
y = data$num_students,
z = data$duration_ms / 1000,
pch = shapes[factor(data$proj_pref_type)],
color = colors_mechanism[factor(data$mechanism)]
#,zlim = c(0,15)
)
}
plotit(filter(data_all, num_slots == 1))

plotit(data_singleton)

plotit(data_p1)

plotit(data_p4)

plotit(data_r)

These are some other plots
Using plotly
library(plotly)
Warning: package ‘plotly’ was built under R version 4.0.5
Attaching package: ‘plotly’
The following object is masked from ‘package:ggplot2’:
last_plot
The following object is masked from ‘package:stats’:
filter
The following object is masked from ‘package:graphics’:
layout
plot_data <- function(data) {
fig <- plot_ly(data, x = ~num_projects, y = ~num_students, z = ~(duration_ms / 1000), color = ~as.factor(mechanism), colors = colors_mechanism) %>%
add_markers(size=1) %>%
layout(
scene = list(
xaxis = list(title = "# projects"),
yaxis = list(title = "# students"),
zaxis = list(title = "duration (sec)", type = "log")
),
legend = list(orientation = "h")
)
return(fig)
}
plot_data(data_all)
plot_data(data_singleton)
plot_data(data_p1)
plot_data(data_p4)
plot_data(data_r)
LS0tDQp0aXRsZTogIlIgTm90ZWJvb2siDQpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sNCi0tLQ0KYGBge3IgaW5jbHVkZT1GQUxTRX0NCmluc3RhbGwucGFja2FnZXMoInBsb3RseSIpDQoNCmxpYnJhcnkodGlkeXZlcnNlKQ0KDQpgYGANCiMjIExvYWRpbmcgaW4gdGhlIGRhdGENCmBgYHtyfQ0KZGF0YV9hbGwgPC0gIHJlYWRfY3N2KCIuLi8uLi8uLi9yZXBvcnRzL3J1bnRpbWVzX2JpZy5jc3YiLCBjb2xfdHlwZXMgPSBjb2xzKG51bV9zdHVkZW50cyA9IGNvbF9mYWN0b3IoKSwgbnVtX3Byb2plY3RzID0gY29sX2ZhY3RvcigpLCBwcm9qX3ByZWZfdHlwZSA9IGNvbF9mYWN0b3IoKSwgbWVjaGFuaXNtID0gY29sX2ZhY3RvcigpKSkNCg0KZGF0YV9zaW5nbGV0b24gPC0gZGF0YV9hbGwgJT4lIGZpbHRlcihwcm9qX3ByZWZfdHlwZSA9PSAic2luZ2xldG9uIikNCmRhdGFfcDEgPC0gZGF0YV9hbGwgJT4lIGZpbHRlcihwcm9qX3ByZWZfdHlwZSA9PSAibGluZWFyX3BlcnR1cmJlZF8xIikNCmRhdGFfcDQgPC0gZGF0YV9hbGwgJT4lIGZpbHRlcihwcm9qX3ByZWZfdHlwZSA9PSAibGluZWFyX3BlcnR1cmJlZF80IikNCmRhdGFfciA8LSBkYXRhX2FsbCAlPiUgZmlsdGVyKHByb2pfcHJlZl90eXBlID09ICJyYW5kb20iKQ0KDQoNCmNvbG9yc19tZWNoYW5pc20gPSBjKCIjN2E1MTk1IiwgIiNmZmE2MDAiKQ0KYGBgDQoNCiMjIFNvbWUgaW5pdGlhbCBwbGF5aW5nIHdpdGggc2NhdHRlcnBsb3QzZA0KYGBge3J9DQpsaWJyYXJ5KHNjYXR0ZXJwbG90M2QpDQoNCnBsb3RpdCA8LSBmdW5jdGlvbihkYXRhKSB7DQogICAgDQogICAgI2NvbG9ycyA8LSBjKCIjMDAzZjVjIiwgIiM1ODUwOGQiLCAiI2JjNTA5MCIsICIjZmY2MzYxIiwgIiNmZmE2MDAiKQ0KICAgIGNvbG9ycyA9IGMoIiMwMDNmNWMiICwiIzdhNTE5NSIgLCIjZWY1Njc1IiAsIiNmZmE2MDAiKQ0KICAgIGNvbG9yc19tZWNoYW5pc20gPSBjKCIjN2E1MTk1IiwgIiNmZmE2MDAiKQ0KICAgIA0KICAgIHNoYXBlcyA8LSBjKDE1LCAxNiwgMTcsIDE4KQ0KICAgIA0KICAgIHNjYXR0ZXJwbG90M2QoDQogICAgICAgIHggPSBkYXRhJG51bV9wcm9qZWN0cywNCiAgICAgICAgeSA9IGRhdGEkbnVtX3N0dWRlbnRzLA0KICAgICAgICB6ID0gZGF0YSRkdXJhdGlvbl9tcyAvIDEwMDAsIA0KICAgICAgICBwY2ggPSBzaGFwZXNbZmFjdG9yKGRhdGEkcHJval9wcmVmX3R5cGUpXSwNCiAgICAgICAgY29sb3IgPSBjb2xvcnNfbWVjaGFuaXNtW2ZhY3RvcihkYXRhJG1lY2hhbmlzbSldDQogICAgICAgICMsemxpbSA9IGMoMCwxNSkNCiAgICApDQogICAgDQp9DQoNCnBsb3RpdChmaWx0ZXIoZGF0YV9hbGwsIG51bV9zbG90cyA9PSAxKSkNCg0KcGxvdGl0KGRhdGFfc2luZ2xldG9uKQ0KcGxvdGl0KGRhdGFfcDEpDQpwbG90aXQoZGF0YV9wNCkNCnBsb3RpdChkYXRhX3IpDQoNCmBgYA0KDQpUaGVzZSBhcmUgc29tZSBvdGhlciBwbG90cw0KDQpgYGB7ciBldmFsPUZBTFNFLCBpbmNsdWRlPUZBTFNFfQ0KbGlicmFyeSh0aWR5dmVyc2UpDQoNCmRhdGFfYWxsIDwtIHJlYWRfY3N2KCIuLi8uLi8uLi9yZXBvcnRzL3J1bnRpbWVzX2JpZy5jc3YiLCBjb2xfdHlwZXMgPSBjb2xzKG51bV9zdHVkZW50cyA9IGNvbF9mYWN0b3IoKSwgbnVtX3Byb2plY3RzID0gY29sX2ZhY3RvcigpLCBwcm9qX3ByZWZfdHlwZSA9IGNvbF9mYWN0b3IoKSkpDQoNCiN1bmlxdWUoZGF0YV9hbGwkbnVtX3N0dWRlbnRzKQ0KDQpmb3IgKHByZWZfZGlzdCBpbiBsZXZlbHMoZGF0YV9hbGwkcHJval9wcmVmX3R5cGUpKSB7DQogICAgZGF0YV9maWx0ZXJlZCA8LSBkYXRhX2FsbCAlPiUgZmlsdGVyKG51bV9zdHVkZW50cyA9PSA4NjAgJiBwcm9qX3ByZWZfdHlwZSA9PSBwcmVmX2Rpc3QpDQogICAgI3ByaW50KGRhdGFfZmlsdGVyZWQpDQogICAgDQogICAgcGxvdCA8LSBnZ3Bsb3QoZGF0YV9maWx0ZXJlZCwgYWVzKHggPSBmYWN0b3IobnVtX3Nsb3RzKSwgeSA9IChkdXJhdGlvbl9tcykpLCBncm91cCA9IG51bV9wcm9qZWN0cykgKw0KICAgICAgICAgICAgICAgIGdlb21fYm94cGxvdCgpICsNCiAgICAgICAgICAgICAgICBnZW9tX2ppdHRlcihwb3NpdGlvbj1wb3NpdGlvbl9qaXR0ZXIoMC4yKSkgKw0KICAgICAgICAgICAgICAgIGZhY2V0X3dyYXAodmFycyhudW1fcHJvamVjdHMpKSArDQogICAgICAgICAgICAgICAgeWxpbSgwLCAyMDAwMCkgKyANCiAgICAgICAgICAgICAgICBsYWJzKHRpdGxlID0gcHJlZl9kaXN0KQ0KICAgIHByaW50KHBsb3QpDQp9DQpgYGANCg0KIyMgVXNpbmcgcGxvdGx5DQpgYGB7cn0NCg0KbGlicmFyeShwbG90bHkpDQoNCnBsb3RfZGF0YSA8LSBmdW5jdGlvbihkYXRhKSB7DQogICAgZmlnIDwtIHBsb3RfbHkoDQogICAgICAgICAgICBkYXRhLA0KICAgICAgICAgICAgeCA9IH5udW1fcHJvamVjdHMsIHkgPSB+bnVtX3N0dWRlbnRzLCB6ID0gfihkdXJhdGlvbl9tcyAvIDEwMDApLA0KICAgICAgICAgICAgY29sb3IgPSB+YXMuZmFjdG9yKG1lY2hhbmlzbSksY29sb3JzID0gY29sb3JzX21lY2hhbmlzbSkgJT4lDQogICAgICAgIGFkZF9tYXJrZXJzKHNpemU9MSkgJT4lIA0KICAgICAgICBsYXlvdXQoDQogICAgICAgICAgICBzY2VuZSA9IGxpc3QoDQogICAgICAgICAgICAgICAgeGF4aXMgPSBsaXN0KHRpdGxlID0gIiMgcHJvamVjdHMiKSwNCiAgICAgICAgICAgICAgICB5YXhpcyA9IGxpc3QodGl0bGUgPSAiIyBzdHVkZW50cyIpLA0KICAgICAgICAgICAgICAgIHpheGlzID0gbGlzdCh0aXRsZSA9ICJkdXJhdGlvbiAoc2VjKSIsIHR5cGUgPSAibG9nIikNCiAgICAgICAgICAgICksDQogICAgICAgICAgICBsZWdlbmQgPSBsaXN0KG9yaWVudGF0aW9uID0gImgiKQ0KICAgICAgICApDQogICAgDQogICAgcmV0dXJuKGZpZykNCn0NCg0KcGxvdF9kYXRhKGRhdGFfYWxsKQ0KcGxvdF9kYXRhKGRhdGFfc2luZ2xldG9uKQ0KcGxvdF9kYXRhKGRhdGFfcDEpDQpwbG90X2RhdGEoZGF0YV9wNCkNCnBsb3RfZGF0YShkYXRhX3IpDQpgYGANCg0KDQo=